package cn.jly.bigdata.spark.core

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @author lanyangji
 * @date 2019/11/24 10:47
 */
object Spark02_expr8 {

  def main(args: Array[String]): Unit = {

    // local模式

    // 创建 SparkConf 对象
    // 这边也自定义了本地的模式（分配多少个cpu）
    // app id
    val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount")

    // 创建spark上下文对象，SparkContext -> sc
    val sc = new SparkContext(sparkConf)

    // 默认的分区数=计算机最大cpu个数=12个
    val listRDD: RDD[Int] = sc.makeRDD(Array(1, 2, 1, 4, 4, 6, 9, 9, 9))

    // distinct算子 对数据去重，因为我们去重后会导致数据减少，所以可以改变默认的分区数量
    //val distinctRDD: RDD[Int] = listRDD.distinct()
    // 指定numTasks个数，即分区
    val distinctRDD: RDD[Int] = listRDD.distinct(2)

    //distinctRDD.collect.foreach(println)

    distinctRDD.saveAsTextFile("output")
  }
}
